-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat: 회원 탈퇴 #209
Feat: 회원 탈퇴 #209
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
멤버는 hard delete하는 것도 괜찮은 것 같긴 한데, 지금까지 다른거 다 soft delete로 처리했으니 soft delete로 통일하는게 좋을 것 같슴다.(디비에 민감한 사용자 정보는 저장하지 않으니 괜찮을 듯함니다)
근데 soft delete로 하려면 member 엔티티에서 양방향으로 관계를 맺어줘야 하는 번거로움은 있음..
근데 이 브랜치에서 아무것도 안 건들이고 실행해봤을 때, member가 다른 엔티티들(question, workbook 등) foreign key로 지정되어 있어서 삭제하려면 무결성조건에 문제가 생겨서 에러가 납니당
@@ -13,7 +13,7 @@ import java.util.UUID | |||
|
|||
@Entity | |||
data class Exam( | |||
@ManyToOne | |||
@ManyToOne(cascade = [(CascadeType.REMOVE)]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기다 cascade를 걸면 exam이 삭제될 때, member도 같이 삭제될 것 같슴다!! (수정한 다른 엔티티도 마찬가지)
헉 그럼 member 에서 양방향 관계 맺어주면 soft delete를 해도 cascade soft delete 가 된다는건가영?? |
멤버 엔티티 코드를 일케 수정하면 멤버도 soft delete되고 나머지 연관된 데이터들도 다 soft delete 됩니더 |
아하 이렇게..!!! 좋은데욧 근데 신기하게 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
굿!!! 베리굿~~
import java.util.UUID | ||
|
||
@Entity | ||
@SQLDelete(sql = "UPDATE question_set SET deleted_at = NOW() WHERE question_set_id = ?") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question_set -> member
, question_set_id -> member_uuid
로 수정해주쎄용
PR
✨ 작업 내용
✨ 참고 사항
@SQLRestriction
으로 soft delete 해놓은 것에서는 cascade 로 자식 엔티티를 삭제하는 방법을 몰라서 그냥 hard delete 로 구현했습니다. 멤버 탈퇴는 아예 삭제시키는게 맞는 것 같긴 해요..! 이에따라Question
,Workbook
,Exam
에 대해서 cascade 옵션을 추가해주었습니다.⏰ 현재 버그
Question
,Workbook
,Exam
엔티티들이 cascade로 삭제당하는 경우에는 단순 삭제와 달리 soft delete가 되지 않습니다.fixtureMonkey 의 알 수 없는 버그로 외래키가 없는 member 엔티티에 대해서만
fixtureMonkey.givemeOne
메서드를 사용할 수 있었는데 엔티티 필드 변화에 따라 모두 삭제했습니다.아래와 같은 ktlintformat 에러가 발생해서
MemberDtos
라는 이름 대신DeleteMemberResponse
라고 명명했습니다. (아마 내부에 데이터 클래스가 하나 뿐이라 통일하라고 하는 것 같네요)✏ Git Close